package com.ruoyi.swla2.mapper;

import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@InterceptorIgnore(tenantLine = "on")
@DataSource(value = DataSourceType.QTGIS)
public interface PgEditMapper {
    // 获取空间数据库的表名
    List<Map<String, Object>> getGeomTable();

    //获取指定表的总行数
    int getTableNumber(@Param("tableName") String tableName);

    //获取指定表空间字段的类型
    String getGeomType(@Param("tableName") String tableName, @Param("geom") String geom);

    //获取指定表字段
    List<String> getTableField(@Param("tableName") String tableName);

    //获取指定表格数据
    List<Map<String, Object>> getTableData(@Param("tableName") String tableName, @Param("geom") String geom, @Param("page") int page, @Param("pageSize") int pageSize);

    //查找指定表格数据
    List<Map<String, Object>> findGisTableData(@Param("tableName") String tableName, @Param("geom") String geom, @Param("fields") List<String> fields, @Param("fieldValues") Map<String, Object> fieldValues, @Param("page") int page, @Param("pageSize") int pageSize);

    List<Map<String, Object>> findNormalTableData(@Param("tableName") String tableName, @Param("fields") List<String> fields, @Param("fieldValues") Map<String, Object> fieldValues, @Param("page") int page, @Param("pageSize") int pageSize);

    //向指定表格插入数据
    boolean insertTableData(@Param("tableName") String tableName, @Param("newRow") Map<String, Object> newRow, @Param("fields") List<String> fields);

    //向指定表格更新数据
    boolean updateTableData(@Param("tableName") String tableName, @Param("id") Long id, @Param("newRow") Map<String, Object> newRow, @Param("fields") List<String> fields);

    //向指定表格删除数据
    boolean deleteTableData(@Param("tableName") String tableName, @Param("id") Long id);
}
